package com.agent.enhancer;

import net.bytebuddy.asm.Advice;

/**
 * @author: LunBoWang
 * @description: TODO
 * @date: 2025/6/10 下午9:31
 * @version: 1.0
 */

public class MyAdvice {

    //方法进入时，打印所有参数，返回开始时间
    @Advice.OnMethodEnter
    static long enter(@Advice.AllArguments Object[] any){
        if(any!=null){
            for(int i=0;i<any.length;i++){
                System.out.println("参数"+i+" 内容："+any[i]);
            }
        }
        return System.nanoTime();
    }

    //方法退出时候，统计方法执行耗时
    @Advice.OnMethodExit
    static void exit(@Advice.Enter long startTime){
        System.out.println("方法执行耗时："+(System.nanoTime()-startTime)+"纳秒");
    }
}
